#pragma once

#ifndef _OGL_DATA_OBJECT
#define _OGL_DATA_OBJECT

#include "OGLGlobals.h"

#include <gl/glew.h>
#include <vector>

typedef struct _OGL_Vertex_Array_Pointer_Data
{
	GLuint index;	// Must match the Vertex Shader file
	GLenum type;	// Can be GL_INT, GL_FLOAT, etc.
	GLboolean normalized;
	GLint size;	// can be 1,2,3 or 4, Eg (x,y,z) = 3, (x,y) = 2
	GLsizei stride;
	GLvoid *offset;

} OGLVAPData;

class OGLDataObject
{
private :

	GLuint vboID;
	bool vboidSet;

public :
	GLuint vaoID, programID;
	GLenum dataType, usageType;
	std::vector<OGLVAPData *> vertexAttribData;

	OGLResult SetVBOID(GLuint vboid);
	GLuint GetVBOID(void);

	OGLDataObject(void);
	virtual ~OGLDataObject(void);
};

#endif